package com.arpa.wms.domain.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;

/**
 * <p>
 * 仓库费用明细DTO
 * </p>
 *
 * @author LEO
 * @since 2020-11-17
 */
@Data
@ApiModel(value="ExpenseDetailVO对象", description="仓库费用明细")
public class ExpenseDetailVO implements Serializable {


    @ApiModelProperty(value = "记录标识")
    private String code;

    @ApiModelProperty(value = "仓库标识")
    private String warehouseCode;

    @ApiModelProperty(value = "仓库名称")
    private String warehouseName;

    @ApiModelProperty(value = "入驻商")
    private String shipmentCode;

    @ApiModelProperty(value = "货主名称")
    private String shipmentName;

    @ApiModelProperty(value = "来源单号")
    private String sourceCode;

    @ApiModelProperty(value = "商品标识")
    private String goodsCode;

    @ApiModelProperty(value = "商品编码")
    private String goodCode;

    @ApiModelProperty(value = "商品条码")
    private String goodsBarCode;

    @ApiModelProperty(value = "商品规格")
    private String spec;

    @ApiModelProperty(value = "商品名称")
    private String goodsName;

    @ApiModelProperty(value = "单位名称")
    private String unitName;

    @ApiModelProperty(value = "单位")
    private String goodsUnit;

    @ApiModelProperty(value = "数量")
    private BigDecimal quantity;

    @ApiModelProperty(value = "重量")
    private BigDecimal weight;

    @ApiModelProperty(value = "收货批次")
    private String receiveLot;

    @ApiModelProperty(value = "费用类型")
    private String feeType;

    @ApiModelProperty(value = "计费单位：PIECE（件），TON（吨）")
    private String billingUnit;

    @ApiModelProperty(value = "单价")
    private BigDecimal unitPrice;

    @ApiModelProperty(value = "金额")
    private BigDecimal amountMoney;

    @ApiModelProperty(value = "已结算金额")
    private BigDecimal settledMoney;

    @ApiModelProperty(value = "未结算金额")
    private BigDecimal unsettledMoney;

    @ApiModelProperty(value = "待结算金额")
    private BigDecimal waitingSettledMoney;

    @ApiModelProperty(value = "开始时间")
    private LocalDate gmtSettledBegin;

    @ApiModelProperty(value = "结束时间")
    private LocalDate gmtSettledEnd;

    @ApiModelProperty(value = "订单日期")
    private LocalDate gmtOrder;

    @ApiModelProperty(value = "状态:UNSETTLED(未结算)，SETTLED(已结算)，PARTIALLY_SETTLED(部分结算)")
    private String status;

    @ApiModelProperty(value = "备注")
    private String remarks;

    @ApiModelProperty(value = "总数")
    private Long total;
}
